package IO流.文件字节流;
/**
 *复制文件需要分别创建一个输入流和输出流完成文件读写
 * 要创建一个中转站，借助循环和中站站完成复制
 * 流使用完毕一定要关闭，这个和垃圾回收没有关系
 * */
import java.io.*;

public class $01_FileInputStream_FileOutputStream {
    public static void main(String[] args) throws IOException {
        //创建输入流和输出流
        File file=new File("F:\\javayws.txt");
        File file1=new File("F:\\javayws2.txt");
        InputStream inputStream=new FileInputStream(file);
        OutputStream outputStream=new FileOutputStream(file1);
        //如果是FileOutputStream(file1，true)则是在原文件后面追加
        //InputStream inputStream=new FileInputStream("F:\\javayws.txt");可以做到前面的两个语句的简写
        //OutputStream outputStream=new FileOutputStream("F:\\javayws2.txt");也可以做到前面的两个语句的简写


        /**使用输入流和输出流完成文件复制*缺点就是中转站可能太小
        int n;
        n=inputStream.read();
        while (n!=-1)
        {outputStream.write(n);
            n=inputStream.read();
        }*/

        byte []bytes=new byte[1024];//定义一个中转站，就是一个字节数组
        int len=inputStream.read(bytes);//读文件的内容放入到字节数组中
        while (len!=-1) {
            outputStream.write(bytes,0,len);//写入读取到的数据的0到len，防止因为len小于1024时还是在写的时候写1024个字节
            len=inputStream.read(bytes);
        }
/**
 * outputStream.write("\r\n".getBytes());
 * //可以实现在写入的时候的换行；不同的OS实现换行操作不一样
 * Windows使用的是：\r\n
 * Linux使用的是：\n
 * mac使用的是：\r
 *
 * */

        inputStream.close();
        outputStream.close();
    }
}
